package com.vanysoft.business.base.menu.dao;

import com.vanysoft.business.base.menu.entity.TBaseMenu;

import java.util.List;
import java.util.Map;

public interface BaseMenuMapper {
    int deleteByPrimaryKey(String functionCode);

    int insert(TBaseMenu record);

    int insertSelective(TBaseMenu record);

    TBaseMenu selectByPrimaryKey(String functionCode);

    int updateByPrimaryKeySelective(TBaseMenu record);

    int updateByPrimaryKey(TBaseMenu record);

    /**
     * Function Name               loadFunctionByCodes
     *
     * @param functionCodes
     * @return
     * @description 根据功能代码字符串递归查询功能代码集合
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年6月28日 下午4:20:45          SharpClaw_x                     Initial
     * *********************************************************************
     */
    List<Map> loadFunctionByCodes(String functionCodes);

    /**
     * Function Name               queryFunctionInfoByCodesPart
     *
     * @param functionCodeList
     * @return
     * @description 根据功能代码集合查询功能信息, 显示部分字段
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年6月28日 下午4:30:51          SharpClaw_x                     Initial
     * *********************************************************************
     */
    List<Map<String, Object>> queryFunctionInfoByCodesPart(String functionCodeList);

    /**
     * Function Name               queryAdminFunctions
     *
     * @return
     * @description administrator角色拥有所有功能菜单权限
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年7月3日 下午2:18:17          SharpClaw_x                     Initial
     * *********************************************************************
     */
    List<String> queryAdminFunctions();
}